一、http协议
1.1、简介
HTTP 是一种无状态的协议,无状态就是指浏览器和服务器之前没有一种长连接的关系,比如说浏览器发送了一次请求,服务器接收到之后返回响应到浏览器,到此连接就被关闭了,在服务器端不保留连接的有关信息。
1.2、结构组成
1.2.1、http 请求
请求行 – 请求头 – 请求正文/请求体
请求行格式:<方法><空格>
请求头格式:<字段名> : <字段值>
…
…
…
<空行>
<消息体>
1.2.2、http 响应
状态行 – 响应头 – 响应正文/响应体
状态行格式:
消息头格式:<字段名> : <字段值>
…
…
…
<空行>
<消息体>
1.3、主要头字段
通用头:适用于请求头和响应消息的头字段
Date : 表示请求和响应生成的日期
Pragma : 表示数据是否允许缓存的通信选项
Cache-Control : 控制缓存的相关信息
Transfer-Encoding : 表示消息主体的编码格式
Via : 记录途中经过的代理和网关
请求头:用于表示请求消息的附加信息的头字段
If-Modified-Since : 如果希望仅当数据在某个日期之后有更新时才执行请求,可以在这个字段指定希望的日期。一般来说,这个功能的用途在于判断客户端缓存的数据是否已经过期,如果已经过期则获取新的数据
Referer : 当通过点击超级链接进入下一个页面时,在这里
会记录下上一个页面的 URI
User-Agent : 客户端软件的名称和版本号等相关信息
Accept : 客户端可支持的数据类型(Content-Type), 以MIME 类型来表示
响应头:用于表示响应消息的附加信息的头字段
Server : 服务器程序的名称和版本号等相关信息
Location : 表示信息的准确位置。当请求的 URI 为相对路径时,这个字段用来返回绝对路径
以 chrome 上的为例
一次 get 请求头
1 | Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 |